1. Field of the Invention
The invention relates generally to the field of digital data processing systems, and more specifically to systems for simulating the operation of analog or digital systems particularly by constructing and solving mathematical models describing the operations of such systems.
2. Description of the Prior Art
For a number of years, computerized simulation systems have been used to simulate the functioning of digital and analog systems, and specifically to enable processing of mathematical models of such systems by digital computers. After a first design pass, a designer or engineer generally constructs a simulation program which embodies the features of the design, and runs the program on a digital computer to simulate the operation of devices constructed in accordance with the design. After obtaining the results of the simulation, the designer may then perform additional design work and simulate the revised design. The designer may wait until he is satisfied with the result of the computer simulation before constructing a physical prototype of the system to verify the design, thereby saving time and expense.
In the past, simulation systems often required the system designer, who is usually an engineer or scientist, and not a computer programmer, to develop a custom program to use in this simulation. This generally either required the product designer himself to know a considerable amount of programming, or it required the product designer to work closely with a programmer to generate the simulation program. This essentially required the designer to know not only his own design specialty, but also computer programming to enable him to either generate the simulation program directly, or to be able to communicate with the programmer.
To reduce the amount of computer programming knowledge required by a system designer or engineer, simulation systems have been developed which include a library of preprogrammed function modules which are maintained by an executive program running in the computer. The function modules can be called up as they are identified by the designer in a script or other identification mechanism. Analog systems can be modelled mathematically by means of, for example, a number of differential equations which can be solved by means of differentiators, integrators, signal generators, adders and multipliers, various transforms and the like, and a simulation system therefor would include separate function modules for each of these functions. All of the function modules are separately available to the system designer. When he is preparing a simulation, all the designer need do is identify the functions to the executive program by means of, for example, a script indicating the order in which they are to be processed and the relationships among the various inputs to and outputs from each of the function modules to simulate the system. The executive program effectively links the selected function modules together, particularly in relation to the inputs to and outputs from each of the separate modules, and the result is a simulation program which will simulate the physical analog system in response to selected initial conditions and parameters provided by a designer.
Digital systems are simulated in a similar way as the aforementioned analog systems. Digital circuit elements, such as logic gates, flip-flops, delay lines and the like may be expressed by means of function modules which are maintained by the executive program and can be separately identified by the system designer. The executive program can then link the function modules representing the circuit elements in the same order as the designer has interconnected them in the logic design being simulated. The result is a program which simulates the operation of the logic circuit in response to selected input signals, initial conditions, and any circuit parameters which may have been selected by the designer.
In both analog and digital simulation systems, since the routines have been previously written and the system designer or engineer need only identify the interconnections or links between function modules, the designer need have little or no knowledge of computer programming to effectively simulate the system. The designer may require functions which may not be provided by the function modules maintained by the executive program, and thus may need to program those modules, but normally that is kept to a minimum. Virtually all of the programming is provided by the previously defined routines maintained by the executive program.